"""
题目地址：https://leetcode.cn/problems/remove-element/?envType=study-plan-v2&envId=top-interview-150
题目概述：27. 移除元素  给你一个数组 nums 和一个值 val，你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量
"""
from typing import List

class Solution:
    #方法一：此方法在leetcode中测试用例执行不通过，可能是与题目相关要求没有达成有关
    def removeElement(self, nums: List[int], val: int) -> int:
        nums = [x for x in nums if x != val]
        print(nums)
        k = len(nums)
        return k


    #方法二：
    def removeElement2(self, nums: List[int], val: int) -> int:
        while val in nums:
            nums.remove(val)
        print(nums)
        k = len(nums)
        return k

if __name__ == '__main__':
    solution = Solution()
    nums = [0,1,2,2,3,0,4,2]
    val = 2
    solution.removeElement(nums, val)
    solution.removeElement2(nums,val)
